﻿using System;
using PomodoroSuite.FW.Comun;
using PomodoroSuite.FW.Comun.Caching;

namespace PomodoroSuite.FW.DAL
{
    public static class FabricaDAL
    {
        #region " Métodos "

        public static DalGenerico<TEntidad> ObtenerDal<TEntidad>() where TEntidad : BOGenerico, new()
        {
            DalGenerico<TEntidad> dal = null;
            dal = (DalGenerico<TEntidad>)CacheManager.Get(typeof(TEntidad).Name);
            if (dal == null)
            {
                dal = (DalGenerico<TEntidad>)Activator.CreateInstance(typeof(DalGenerico<>).MakeGenericType(typeof(TEntidad)));
                CacheManager.AddToCache(typeof(TEntidad).Name, dal, 120);
            }

            return (DalGenerico<TEntidad>)dal;
        }

        #endregion
    }
}
